package pattern.config.datasource;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;

/**
 * 数据源key管理
 * @author Simon
 */
@Slf4j
public class DynamicDataSourceContextHolder {
    /**
     * 动态数据源名称上下文
     */
    private static final InheritableThreadLocal<String> DATASOURCE_CONTEXT_KEY_HOLDER = new InheritableThreadLocal<>();

    /**
     * 设置/切换数据源
     */
    public static void setContextKey(String key) {
        if (StringUtils.isNotBlank(key)) {
            log.debug("切换数据源:{}", key);
        }
        DATASOURCE_CONTEXT_KEY_HOLDER.set(key);
    }

    /**
     * 获取数据源名称
     */
    public static String getContextKey() {
        return DATASOURCE_CONTEXT_KEY_HOLDER.get();
    }

    /**
     * 删除当前数据源名称
     */
    public static void removeContextKey() {
        DATASOURCE_CONTEXT_KEY_HOLDER.remove();
    }

}
